
package com.webster.isw.core.datasource;


import com.webster.isw.core.gen.entity.ScDataSource;

/**
 * ClassName: DbContextHolder
 *
 * Description:
 * 多个登录用户可能需要同时切换数据源，
 * 所以这里需要写一个线程安全的ThreadLocal
 * 用户切换数据源只要在程序中使用
 * DBContextHolder.setDBType("1") 即可完成数据源切换
 *
 * Author: Administrator
 * Date: 2016年3月23日
 */
public class DbContextHolder {

    /**
     * Field contextHolder: 本地线程
     */
    private static final ThreadLocal<ScDataSource> CONTEXTHOLDER = new DataSourceThreadLocal();

    /**
     * Description: 构造函数
     */
    private DbContextHolder() {

    }

    /**
     * Description: 设置数据库类型
     *
     * @param dbType 数据库
     */
    public static void setDbType(ScDataSource dbType) {
        CONTEXTHOLDER.set(dbType);
    }

    public static ScDataSource getDbType() {
        return CONTEXTHOLDER.get();
    }

    /**
     * Description: 清理
     */
    public static void clearDbType() {
        CONTEXTHOLDER.remove();
    }

}
